package com.henryliu.homework1_3;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
   2.准备一个 HashMap 集合，
   统计字符串"123,456,789,123,456"中每个数字字符串出现的次数
   并打印出来。

    如：

        123 出现了 2 次

        456 出现了 2 次

        789 出现了 1 次
 */
public class QuestionTwo {

    public static void main(String[] args) {

        //׼准备一个HashMap集合
        Map<String, Integer> hashMap = new HashMap<>();

        //统计字符串各数字字符串出现的次数
        String s = "123,456,789,123,456";
        StringBuilder stb = new StringBuilder();

        for (int i = 0; i < s.length(); i++) {
            if(',' == s.charAt(i)) {
                continue;
            }
            stb.append(s.charAt(i));
            //当是最后一个字符或者下一个字符为','时，获取到一个数字字符串
            if(s.length() - 1 == i||',' == s.charAt(i + 1)) {
                String s1 = stb.toString();
                if(hashMap.containsKey(s1)) {    //当该字符串存在于HashMap中时，修改其value使其value值加1
                    hashMap.put(s1, hashMap.get(s1) + 1);
                }else {
                    hashMap.put(s1, 1);         //不存在时，存入此字符串，将其value设为1，即第一次出现
                }
                stb = new StringBuilder();      //清掉原来的字符串
            }
        }

        //打印
        Set<String> set = hashMap.keySet();
        for (String s2:set) {
            System.out.println(s2 + " 出现了 " + hashMap.get(s2) + " 次");
        }
    }
}
